.TH std::future_errc 3 "2024.06.10" "http://cppreference.com" "C++ Standard Libary"
.SH NAME
std::future_errc \- std::future_errc

.SH Synopsis
   Defined in header <future>
   enum class future_errc {

       broken_promise             = /* implementation-defined */,
       future_already_retrieved   = /* implementation-defined */,  \fI(since C++11)\fP
       promise_already_satisfied  = /* implementation-defined */,
       no_state                   = /* implementation-defined */

   };

   The scoped enumeration std::future_errc defines the error codes reported by
   std::future and related classes in std::future_error exception objects. Only four
   error codes are required, although the implementation may define additional error
   codes. Because the appropriate specialization of std::is_error_code_enum is
   provided, values of type std::future_errc are implicitly convertible to
   std::error_code.

   All error codes are distinct and non-zero.

.SH Member constants

   Constant                  Explanation
   broken_promise            the asynchronous task abandoned its shared state
   future_already_retrieved  the contents of shared state were already accessed through
                             std::future
   promise_already_satisfied attempt to store a value in the shared state twice
   no_state                  attempt to access std::promise or std::future without an
                             associated shared state

.SH Non-member functions

   make_error_code(std::future_errc)      constructs a future error code
   \fI(C++11)\fP                                \fI(function)\fP
   make_error_condition(std::future_errc) constructs a future error_condition
   \fI(C++11)\fP                                \fI(function)\fP

.SH Helper classes

   is_error_code_enum<std::future_errc> extends the type trait std::is_error_code_enum
   \fI(C++11)\fP                              to identify future error codes
                                        \fI(class template)\fP

.SH Example

    This section is incomplete
    Reason: no example

   Defect reports

   The following behavior-changing defect reports were applied retroactively to
   previously published C++ standards.

      DR    Applied to             Behavior as published              Correct behavior
   LWG 2056 C++11      broken_promise was specified to be zero which  specified to be
                       is conventionally used to mean "no error"      non-zero

.SH See also

   error_code      holds a platform-dependent error code
   \fI(C++11)\fP         \fI(class)\fP
   error_condition holds a portable error code
   \fI(C++11)\fP         \fI(class)\fP

.SH Category:
     * Todo no example
